package com.tinet.autentia.autentificador.web.login;

import java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import com.tinet.autentia.autentificador.model.Usuario;
import com.tinet.autentia.autentificador.svc.UsuarioWS;

import javax.xml.namespace.QName;
import javax.xml.rpc.Service;
import javax.xml.rpc.ServiceException;
import javax.xml.rpc.ServiceFactory;

import java.net.MalformedURLException;
import java.net.URL;
import java.io.File;

/**
 * Managed Bean para el inicio a session del sistema.
 * 
 * @author Naht-Sams
 */
@ManagedBean(name = "LoginMB")
@SessionScoped
public class LoginMB implements Serializable {

    /**
     * Objeto del usuario.
     */
    private Usuario usuario;

    // @EJB(mappedName = "UsuarioBean", name = "UsuarioBean")
    // private transient UsuarioBean bean;

    /**
     * 
     * Verificar datos del usuario ingresando.
     * 
     * @param datosUsuario
     *            datos del usuario.
     */
    public void verificarInicioSession(Usuario datosUsuario) {
        // Bean buscar datos usuario existente.
        URL url = null;
        ServiceFactory factory = null;
        Service service;
        try {
            url =
                    new URL(
                            "http://localhost:8080/autentia-web/UsuarioBean?wsdl");
            QName qname =
                    new QName("http://bean.webservice.autentia-web.jboss.org/jaws",
                            "UsuarioService");
            factory = ServiceFactory.newInstance();
            service = factory.createService(url, qname);
            UsuarioWS userWs = (UsuarioWS) service.getPort(UsuarioWS.class);
        } catch (MalformedURLException e) {
            // TODO manejar excepcion.
            e.printStackTrace();
        } catch (ServiceException e) {
            // TODO manejar excepcion.
            e.printStackTrace();
        }

        redireccionar();
    }

    public void redireccionar() {
    }

    /**
     * Allows to get the usuario attribute value.
     * 
     * @return the usuario value.
     */
    public final Usuario getUsuario() {
        return usuario;
    }

    /**
     * Allows to set the usuario attribute value.
     * 
     * @param usuario
     *            new value for usuario attribute.
     */
    public final void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

}
